package day01.wc

import org.apache.spark.{SparkConf, SparkContext}

/**
 * @Author wsl
 * @Description
 * 指定分区规则：
 * 分区开始位置=分区号*数据总长度/分区总数
 * 分区结束位置=(分区号+1)*数据总长度/分区总数
 *
 * 0分区：1
 * 1分区：2，3
 * 2分区：4，5
 */
object Partition {
  def main(args: Array[String]): Unit = {


    val conf: SparkConf = new SparkConf().setAppName("rdd").setMaster("local[*]")
    val sc = new SparkContext(conf)

    //从集合
    //1.默认分区
    sc.makeRDD(List(1, 2, 3, 4, 5))
      .saveAsTextFile("/output1") //默认产生了cpu核数个分区


    //2.指定分区
    sc.makeRDD(List(1, 2, 3, 4, 5), 3)
      .saveAsTextFile("/output2") //生成3个分区


    //从文件
    //1.默认分区
    sc.textFile("sparkcore/input")
      .saveAsTextFile("/output3") //main(cpu核数,2)


    //2.指定分区
    sc.textFile("sparkcore/input", 3)
      .saveAsTextFile("/output4")

    sc.stop()

  }

}
